package com.frame.work.frame.deal.device0faa;

import com.alibaba.fastjson.JSONObject;
import com.frame.work.common.util.JsonToMqtt;
import com.frame.work.frame.deal.base.BaseFrame;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 *多功能开关
 */
@Data
public class DuoGongNengKaiGuanMianBan_0FAA8A09 extends BaseFrame {

    private String switchState;
    private String spreadingType;
    public DuoGongNengKaiGuanMianBan_0FAA8A09(String gatewayMac, String data) {

        //将基础数据进行处理
        super(gatewayMac, data);

        //处理此设备特有的数据
        this.setSwitchState(StringUtils.substring(data, data.length() - 2, data.length()));
        this.setSpreadingType(StringUtils.substring(data, 38, 40));
        String switchState_1 = StringUtils.substring(data, data.length() - 20, data.length() - 18);
        String switchState_2 = StringUtils.substring(data, data.length() - 18, data.length() - 16);
        String switchState_3 = StringUtils.substring(data, data.length() - 16, data.length() - 14);
        String switchState_4 = StringUtils.substring(data, data.length() - 14, data.length() - 12);

        String[] arr = {switchState_1, switchState_2, switchState_3, switchState_4};

        //将actions信息放入json对象中
        Map<String, Object> actions = new HashMap();
        actions.put("controlType", "DIRECT_CONTROL");
        actions.put("multiSwitchStates", JSONObject.toJSONString(arr));
        this.setActions(actions);

        //处理好的json对象
        String json = JSONObject.toJSONString(this);
        //将数据发送到mqtt队列中
        JsonToMqtt.sendMQTT(gatewayMac, json);

        //如果发送成功了，则执行下列操作
        if (true) {
            String productType = this.getProductType();
            String switchState = this.getSwitchState();

            String[] states = {"0", switchState_1, switchState_2, switchState_3, switchState_4};
            for (int i = 1; i < 5; i++) {
                this.setProductType(productType + "_" + i);
                this.setSwitchState(states[i]);

                //将actions信息放入json对象中
                Map<String, Object> actions1 = new HashMap();
                actions1.put("controlType", "DIRECT_CONTROL");
                actions1.put("switchState", states[i]);
                this.setActions(actions1);

                //处理好的json对象
                String json1 = JSONObject.toJSONString(this);
                //将数据发送到mqtt队列中
                JsonToMqtt.mqttPushLianKongNew(gatewayMac, json1);
            }

        }

    }

}
